【问题标题】:How do I create a Visual Studio project template that includes linked files?如何创建包含链接文件的 Visual Studio 项目模板?
【发布时间】:2011-09-01 23:28:17
【问题描述】:

在 Visual Studio 2010 中,我想创建一个项目模板,其中包含 指向系统上应该存在的两个文件的链接。其中之一是通用的 AssemblyInfo.cs 文件。另一个是强名称密钥文件 (*.snk)。

我需要这些引用是相对的,因为每个开发人员的工作区设置不同。项目模板是否有可能以某种方式找出这些文件在每个开发人员环境中的位置?

从阅读有关模板的内容来看,它们听起来像是相当静态的,所以我想知道是否可以采取一些技巧来做这样的事情。如果不出意外,我可以添加会导致编译错误并迫使开发人员挂钩这些文件的虚假引用。但如果我能为他们做这件事,那就更好了。

【问题讨论】:

  • 你找到解决办法了吗?

标签: visual-studio hyperlink project-template


【解决方案1】:

您应该在 vstemplate 中将 CreateInPlace 属性设置为 truedocumentation

指定是创建项目并在指定位置进行参数替换,还是在临时位置进行参数替换,然后将项目保存到指定位置。

如果您希望相对路径起作用,则需要在您创建项目的地方进行参数替换,而不是在临时位置

【讨论】:

【解决方案2】:

Microsoft 已确认这是可扩展性模型和项目模板的错误。我设法通过使用 IWizard 解决了这个问题。我在 IWizard 实现的 RunFinished 方法中添加了以下代码:

    //Get linked file directory
    string coreDir = Path.GetDirectoryName(MyProject.FullName);

    //Data folder
    ProjectItem propertiesProjectItem = slSharedProject.ProjectItems.Cast<ProjectItem>().Where(p => p.Name == "Data").First();
    propertiesProjectItem.ProjectItems.AddFromFile(coreDir + @"\Service\TheFileIWantToLink.cs");

此代码在 TheFileIWantToLink.cs 文件的副本中链接到我的共享 Silverlight 项目 (slSharedProject)。

【讨论】:

    【解决方案3】:

    您可以尝试将向导集成到您的项目模板中并设置链接文件的路径。如果我没记错的话,您不必创建用户界面;您只需在 replacementsDictionary 中指定正确的替换,VS 将替换模板文件中的值。请参阅thisthis 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多