公開可能なパッケージを作成していますが、obj\Debug\Package\PackageTmp
ディレクトリに移動すると、web.configの接続文字列が置き換え可能なトークンに置き換えられているのがわかります。パブリッシングバッチファイルなどは使用せず、ファイルをディレクトリにコピーします(パブリッシングパッケージシステムを使用して、プロジェクトをテストしている間、動的に生成された多くのファイルを削除します。プロジェクトの新鮮な/元のファイルツリー)web.configトークンや変換などは必要ありません。他のファイルと同じように、web.configファイルをコピーするだけです。どうすればそれを達成できますか?コンマドラインの/p:AutoParameterizationWebConfigConnectionStrings=False
メソッドを確認しましたが、コマンドラインを使用せず、GUIを使用してパッケージを作成しています。 web.configが接続文字列をトークンに変更しないようにするにはどうすればよいですか?
そして、あなたが言う前に:はい、私は元のweb.configを元のディレクトリからコピーできることを知っていますが、これに対処したくないので、テストしているときにシングルクリックで終了したいと思います。パッケージを公開し、パッケージを頻繁に再作成します。
.csprojファイルを編集し、Debug PropertyGroupに以下を追加する必要があります。
<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
私はReleaseおよびReleaseCERTの構成をProject.csprojに設定しています(AutoParameterizationWebConfigConnectionStrings行のみを追加しました)。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '**Release**|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>Prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<!-- add the following line to avoid ConnectionString tokenization -->
<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == '**ReleaseCERT**|AnyCPU'">
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>Prompt</ErrorReport>
<!-- add the following line to avoid ConnectionString tokenization -->
<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
</PropertyGroup>
私は 受け入れられた答え が言ったことをしなければなりませんでしたが、代わりにProperties/PublishProfiles/__THEPROFILE__.pubxml
ファイルではなく.csproj
ファイル。
(これはVS2012を使用しているためか?)
WiXセットアップ用に外部でWebプロジェクトパッケージを Travis Illigに従って作成しようとしたときに、同様の問題が発生しました手順 。 AutoParameterizationWebConfigConnectionStrings=False
をMSBuild/@Properties
に追加して解決しました:
<MSBuild Projects="%(ProjectReference.FullPath)"
Targets="Package"
Properties="Configuration=$(Configuration);Platform=AnyCPU;AutoParameterizationWebConfigConnectionStrings=False"
Condition="'%(ProjectReference.WebProject)'=='True'"