厳密な名前のキー署名を使用してプロジェクトをビルドすることはできません-タイトルのメッセージが常に表示されます。
はい、プロジェクトは最初に別のマシンからコピーされました。ただし、[プロジェクトのプロパティ]の[署名]タブで新しいキーを追加しても、このエラーは表示されます。
管理者としてVisual Studioを実行しようとし、Windows証明書ストアにキーを手動で追加しようとしました。
助けて!
編集:新しいプロジェクトではこのエラーは発生しませんが、この既存のプロジェクトを機能させたいと思います。新しい証明書を作成しても機能しません!
私は最終的に解決策を見つけました、そしてこれが本当に他の誰かにも役立つことを願っています。
.csproj
ファイルを編集します。次のコード行を削除します。
<PropertyGroup>
<ManifestCertificateThumbprint>...........</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>xxxxxxxx.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>false</SignManifests>
</PropertyGroup>
証明書ストア内の証明書の署名に関連する次の情報を削除します
<PropertyGroup>
<ManifestCertificateThumbprint>xxxxx xxxxxx</ManifestCertificateThumbprint>
<ManifestKeyFile>xxxxxxxx.pfx</ManifestKeyFile>
<GenerateManifests>true</GenerateManifests>
<SignManifests>false</SignManifests>
</PropertyGroup>
これを試してください:プロジェクトを右クリックします-> Go to properties-> Click signing which is the left side of the screen-> ncheck the- クリック1回マニフェストに署名-> Save&Build
Visual Studio内のプロジェクトの「プロパティ」に移動します。次に、[署名]タブに移動します。
次に、「Click Once Clickマニフェストに署名する」がオフになっていることを確認します。
OR
1.メモ帳で.csprojファイルを開きます。
2.証明書ストアxxxxx xxxxxx xxxxxxxx.pfx true false `の証明書の署名に関連する次の情報を削除します
私のために働いた。
これが、プロジェクトをコピーしたシステムのWindowsによって作成された個人証明書であると仮定すると、プロジェクトが現在あるシステムで証明書マネージャーを使用して、証明書をインポートできます。証明書マネージャー(certmgr)を起動して個人証明書を選択し、既存の証明書のリストの下で右クリックして、タスクからインポートを選択します。参照を使用して、プロジェクト内の.pfx(プロジェクトと共にコピーした前のシステムの.pfx)を見つけます。プロジェクトディレクトリと同じ名前のサブディレクトリにある必要があります。私はC#とVSに精通しているので、それがあなたの環境でない場合、.pfxは他の場所にあるか、この提案は当てはまらないかもしれません。インポート後、ステータスメッセージが表示されます。成功した場合は、証明書のコンパイルエラーがなくなるはずです。
属性を使用して厳密な名前でアセンブリに署名するには
AssemblyInfo.cs
($(SolutionDir)\Properties
内)を開きます
AssemblyKeyFileAttribute
またはAssemblyKeyNameAttribute
。厳密な名前でアセンブリに署名するときに使用するキーペアを含むファイルまたはコンテナの名前を指定します。
次のコードを追加します。
[Assembly:AssemblyKeyFileAttribute("keyfile.snk")]
別のコンピューターからファイルをコピーしたと言いました。それらをコピーした後、「ブロック解除」しましたか?具体的には、.snkファイルをチェックして、安全でないとマークされていないことを確認する必要があります。
プロジェクトまたはソリューションをローカルでビルドするだけが必要な場合、他の人が示唆するように、署名を削除することは非常に簡単なソリューションかもしれません。
ただし、展開または配布のために実際のリリース作品をビルドするTeamCityなどのオートメーションビルドサーバーでこのエラーが発生した場合、ビルドマシンの証明書ストアにこの証明書を適切にインストールする方法を検討する必要があります。ビルドの最後に署名されたパッケージ。
一般に、ソース管理にPFX証明書をチェックイン/コミットすることは推奨されません。そのため、ビルドサーバーでこのファイルを取得する方法はビルドプロセスはもう1つの質問ですが、ソリューションコードと共にこのファイルが保存されている場合があるため、プロジェクトフォルダーで見つけることができます。
必要なのは、ビルドサーバーのproperアカウントにこの証明書をインストールするだけです。
ダウンロード Windows SysinternalsからのPsExec 。
コマンドプロンプトを開き、次を入力します。 Local Systemとして実行される新しいコマンドプロンプトが生成されます(TeamCityがデフォルトのローカルシステムアカウントで実行されていると仮定):
> psexec.exe -i -s cmd.exe
この新しいコマンドプロンプトで、証明書を含むディレクトリに移動し、インストールするファイル名を入力します(ファイルの名前を自分のものに変更します)。
> mykey.pfx
証明書のインポートウィザードが起動します。クリックして、推奨されるすべてのデフォルトを選択します。
ビルドを実行します。
すべてのクレジットはStuart Noble(さらにLaurentKempébelieve)と思います。
Windows証明書ストアにキーを手動で追加するだけでは不十分です。証明書には署名された公開鍵のみが含まれます。また、証明書の公開キーに関連付けられているprivate keyもインポートする必要があります。 .pfxファイルには、1つのファイルに公開キーと秘密キーの両方が含まれています。それがインポートする必要があるものです。