Browse Source

VS Generator: Only include default certificate if it was actually copied

Mark Ingram 7 years ago
parent
commit
5cc195f1f4

+ 8 - 4
Source/cmVisualStudio10TargetGenerator.cxx

@@ -3964,6 +3964,7 @@ void cmVisualStudio10TargetGenerator::WriteWinRTPackageCertificateKeyFile(
                                  pfxFile, false);
         ConvertToWindowsSlash(pfxFile);
         this->AddedFiles.push_back(pfxFile);
+        this->AddedDefaultCertificate = true;
       }
 
       e1.Element("PackageCertificateKeyFile", pfxFile);
@@ -4530,10 +4531,13 @@ void cmVisualStudio10TargetGenerator::WriteCommonMissingFiles(
   Elem(e1, "Image").Attribute("Include", splashScreen).EndElement();
   this->AddedFiles.push_back(splashScreen);
 
-  // This file has already been added to the build so don't copy it
-  std::string keyFile = this->DefaultArtifactDir + "/Windows_TemporaryKey.pfx";
-  ConvertToWindowsSlash(keyFile);
-  Elem(e1, "None").Attribute("Include", keyFile).EndElement();
+  if (this->AddedDefaultCertificate) {
+    // This file has already been added to the build so don't copy it
+    std::string keyFile =
+      this->DefaultArtifactDir + "/Windows_TemporaryKey.pfx";
+    ConvertToWindowsSlash(keyFile);
+    Elem(e1, "None").Attribute("Include", keyFile).EndElement();
+  }
 }
 
 bool cmVisualStudio10TargetGenerator::ForceOld(const std::string& source) const

+ 1 - 0
Source/cmVisualStudio10TargetGenerator.h

@@ -219,6 +219,7 @@ private:
   bool IsMissingFiles;
   std::vector<std::string> AddedFiles;
   std::string DefaultArtifactDir;
+  bool AddedDefaultCertificate = false;
   // managed C++/C# relevant members
   typedef std::pair<std::string, std::string> DotNetHintReference;
   typedef std::vector<DotNetHintReference> DotNetHintReferenceList;