Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态创建项目_C# - Fatal编程技术网

C# 动态创建项目

C# 动态创建项目,c#,C#,我希望在解决方案中动态创建项目 C#代码 protected void Page_Load(object sender, EventArgs e) { string projectPath = @"C:\Users\lucas_000\Documents\Visual Studio 2010\Projects\ModelingProject1\ModelingProject1\ModelingProject1.modelproj";

我希望在解决方案中动态创建项目

C#代码

protected void Page_Load(object sender, EventArgs e)
        {
            string projectPath = @"C:\Users\lucas_000\Documents\Visual Studio 2010\Projects\ModelingProject1\ModelingProject1\ModelingProject1.modelproj";
            using (IModelingProjectReader projectReader = ModelingProject.LoadReadOnly(projectPath))
            {
               IModelStore store = projectReader.Store;
               foreach (IClass umlClass in store.AllInstances<IClass>())
               {
                   try
                   {
                       Engine engine = new Engine();                       
                       //engine.BinPath = RuntimeEnvironment.GetRuntimeDirectory();
                       Project project = engine.CreateNewProject();

                       project.AddNewImport(@"$(MSBuildBinPath)\Microsoft.CSharp.targets", null);

                       BuildPropertyGroup props = project.AddNewPropertyGroup(false);
                       props.AddNewProperty("AssemblyName", "myassembly");
                       props.AddNewProperty("OutputType", "Library");

                       BuildItemGroup items = project.AddNewItemGroup();
                       items.AddNewItem("Reference", "Some.Assembly");
                       items.AddNewItem("Compile", "somefile.cs");

                       project.Save("myproject.csproj");
                   }
                   catch (Exception e2)
                   {
                   }
               }
            }
        }
受保护的无效页面加载(对象发送方,事件参数e)
{
字符串projectPath=@“C:\Users\lucas\u 000\Documents\Visual Studio 2010\Projects\ModelingProject1\ModelingProject1\ModelingProject1.modelproj”;
使用(IModelingProjectReader-projectReader=ModelingProject.LoadReadOnly(projectPath))
{
IModelStore store=projectReader.store;
foreach(IClass umlClass in store.AllInstances())
{
尝试
{
发动机=新发动机();
//engine.BinPath=RuntimeEnvironment.GetRuntimeDirectory();
Project=engine.CreateNewProject();
project.AddNewImport(@“$(MSBuildBinPath)\Microsoft.CSharp.targets”,null);
BuildPropertyGroup props=project.AddNewPropertyGroup(false);
props.AddNewProperty(“AssemblyName”、“myassembly”);
props.AddNewProperty(“输出类型”、“库”);
BuildItemGroup items=project.AddNewItemGroup();
items.AddNewItem(“参考”、“某些组件”);
items.AddNewItem(“Compile”,“somefile.cs”);
project.Save(“myproject.csproj”);
}
捕获(异常e2)
{
}
}
}
}
问题

当我将保存项目时,在我不想保存此新项目的文件夹中出现
UnauthorizedAccessException

如何在Visual Studio 2010的当前解决方案中创建此项目

更新

project.Save(“myproject.csproj”)
试图保存在
C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\myproject.csproj


我的所有解决方案都在
C:\Users\lucas\u 000\Documents\visualstudio 2010\Projects

中,可能是这样的:使用(IModelingProjectReader projectReader=ModelingProject.LoadReadOnly(projectPath))。。。您似乎正在加载“只读”项目。这一行我正在加载一个UML模型,
project.Save()
中的这一行试图将新项目保存在
CommonFiles
文件夹中,这很奇怪,因为我所有的
解决方案都保存在我的
Documents
文件夹中的VisualStudio文件夹中。我用更多信息更新了我的问题始终避免依赖当前目录设置正确,它肯定不会在VS中。指定完整路径c:\foo\bar\baz.txt,而不仅仅是baz.txt。就像您对projectPath所做的一样。您正在尝试从VS或其他exe中执行此操作吗?如果您在VS中执行此操作,我强烈建议您使用
DTE
,而不是当前的方法。()