小编Jos*_*ltz的帖子

ASP.NET Core RC2项目参考"无法解析依赖关系X"

概观

我有一个ASP.NET Core RC2 .NET框架Web项目,我想在同一解决方案中包含的常规C#类库中添加一个项目引用.

重现的步骤:

使用Visual Studio 2015 Update 2

文件 - >新项目 - > ASP.NET Core Web Application (.NET Framework)

右键单击解决方案 - >新建项目 - > Class Library

我没有做这些:

  • Class Library (.NET Core)
  • Class Library (Portable for iOS, Android, and Windows)
  • Class Library (Portable)

dependencies在project.json中添加以下内容:

"ClassLibrary1": {
  "version": "*",
  "target": "project"
}
Run Code Online (Sandbox Code Playgroud)

问题

为什么"target":"project"在指定项目依赖项时不能添加到依赖项?

在此输入图像描述

期望

我希望这个ASP.NET Core RC2 Web应用程序(.NET Framework)能够引用常规类库作为项目引用.

这有效

"ClassLibrary1": "*"
Run Code Online (Sandbox Code Playgroud)

这不起作用

"ClassLibrary1": {
  "version": "*",
  "target": "project"
}
Run Code Online (Sandbox Code Playgroud)

我的问题

如何从ASP.NET Core RC2 Web项目向常规类库添加项目引用? …

c# visual-studio-2015 asp.net-core

14
推荐指数
1
解决办法
8602
查看次数

如何在为ASP.NET Core构建Web Deploy包时指定自定义parameters.xml?

概观

我正在构建一个可部署的Web包,可以导入到IIS中,自动提示我的ASP.NET Core应用程序所需的设置.我已经创建了一个可以正常部署的软件包,除了在部署之后,我需要手动查找/编辑我的appsettings.json文件.

我知道这个软件包可以包含一个parameters.xml文件,该文件会在将应用程序导入IIS时自动提示并填写我的appsettings.json.我已经创建了一个parameters.xml文件,并在构建之后手动将其添加到我的包中; 它按预期工作.我想让msbuild为我自动将parameters.xml文件添加到包中.

我的一个单独的项目(ASP.NET MVC 4)已经做到了这一点.为此,我只需要将我parameters.xml放在与.csproj相同的文件夹中.我试着在这里做同样的事,但没有运气.

Repro步骤

我创建了一个ASP.NET核心Web应用程序 ASP.NET核心Web应用程序 在ASP.NET Core 1.1上使用.NET Framework .NET Framework与ASP.NET Core 1.1 然后我去发布我的网站

发布下拉列表

选择'文件夹'(只是为了获取模板) 文件夹发布

然后我编辑了配置文件并将其更改WebPublishMethodPackage并在其下方添加了三行.

<DesktopBuildPackageLocation>bin\$(Configuration)\$(MSBuildProjectName).zip</DesktopBuildPackageLocation>
<PackageAsSingleFile>true</PackageAsSingleFile>
<DeployIisAppPath>External</DeployIisAppPath>
Run Code Online (Sandbox Code Playgroud)

修改发布配置文件

然后我又发表了一次.现在我得到一个可以部署到IIS的WebDeploy包.

大!但...

我想自定义parameters.xml.

Parameters.xml我想自定义

对于以前的项目,我能够将parameters.xml文件添加到项目根目录,VS/msbuild会自动将其添加到我发布的包中.这当前适用于使用ASP.NET MVC 4的不同项目.

所以,我为这个项目尝试了同样的事情.首先,我添加了一个settings.json,设置非常简单:

{
  "SettingName": ""
}
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个parameters.xml我认识的文件到我的项目根目录.(如果我手动替换Sample.zip包中的parameters.xml文件,它会在部署时正确提示并替换我的设置)

<parameters>
  <parameter name="IIS Web Application Name" value="External" tags="IisApp">
    <parameterEntry kind="ProviderPath" scope="IisApp" match="^c:\\users\\joshs\\documents\\visual\ studio\ 2017\\Projects\\Sample\\Sample\\obj\\Release\\net461\\win7-x86\\PubTmp\\Out\\$" />
  </parameter>
  <parameter name="Setting Name" description="Enter a custom app setting" defaultValue="Default Setting Value">
    <parameterEntry kind="TextFile" scope="obj\\Debug\\net461\\win7-x86\\PubTmp\\Out\\appsettings\.json$" match="(?&lt;=\&quot;SettingName\&quot;\s*:\s*\&quot;)[^\&quot;]*" />
  </parameter>
</parameters>
Run Code Online (Sandbox Code Playgroud)

再次,我再次点击右键Publish …

msbuild webdeploy asp.net-core

8
推荐指数
1
解决办法
5666
查看次数

NPM - ENOENT 系统调用spawn bash(这与npm 无法找到文件有关)

概述

我正在尝试解决为什么无法通过npm runscripts命令运行文件中定义的问题。每个脚本命令都会返回相同的错误消息:package.json

npm 错误!代码 ENOENT
npm 错误!系统调用spawn bash
npm 错误!路径 C:\Temp\test4
npm 错误!errno -4058
npm 错误!enoent 生成 bash ENOENT
npm 错误!enoent 这与 npm 找不到文件有关。
npm 错误!埃诺恩特

最少的重现步骤

我从 Windows 11 计算机上的节点下载页面安装了 NodeJS 18.12.1 x64 MSI 。

我创建了一个空目录(在我的示例中称为test4),其中包含一个名为package.json以下内​​容的文件:

{
  "scripts": {
    "hello": "echo 'Hello World'"
  }
}
Run Code Online (Sandbox Code Playgroud)

我以管理员身份在与上面列出的文件相同的文件夹中打开了 PowerShell 窗口package.json

运行npm run hello会生成上述错误消息。

详细/愚蠢的记录结果

我使用的一种故障排除技术是启用愚蠢的日志记录来记录尽可能多的详细信息。该命令 ( ) 的结果npm run hello -ddd如下:

详细日志记录的屏幕截图

预期行为

我有一位同事尝试了同样的步骤,他能够得到我预期的结果: …

node.js npm

5
推荐指数
1
解决办法
2000
查看次数

ASP MVC 5属性路由没有注册路由

概观

我正在尝试让属性路由与我的api控制器一起工作.它似乎不起作用,我不确定为什么.我不确定我是否错过了关键步骤,或问题是什么.

问题

我试图点击localhost/api/user/custom?test = 1但是我得到了404(我希望这可以工作)

如果我点击localhost/api/customapi?test = 1我成功进入我的方法

为什么第一个网址不起作用?

建立

我的设置如下:

CustomController.cs

[System.Web.Mvc.RoutePrefix("api")]
public class CustomApiController : ApiController
{
    [System.Web.Mvc.Route("user/custom")]
    [System.Web.Http.HttpGet]
    public async Task<CustomResponse> Get([FromUri] CustomRequest request)
    {
        //Work
    }
}
Run Code Online (Sandbox Code Playgroud)

WebApiConfig.cs

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        ...(json serializer settings)...

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
            );
    }
}
Run Code Online (Sandbox Code Playgroud)

RouteConfig.cs

public static class RouteConfig
{
    public static void …
Run Code Online (Sandbox Code Playgroud)

c# attributerouting asp.net-mvc-5

4
推荐指数
1
解决办法
4861
查看次数

将ASP.NET 5远程发布到IIS

我有一个ASP.NET 5项目,我想部署到远程服务器.我没有远程桌面访问此计算机,否则我可以按照大多数人部署到IIS时使用的相同方法.

我可以在与我的开发相同的机器上部署到我的IIS 8.5.首先,我打包我的项目以获得approot和wwwroot目录.然后,我将IIS指向我的wwwroot,一切正常.

问题是尝试远程部署.通常我会压缩我的MVC 5项目并使用IIS gui来"导入"一个应用程序.

在此输入图像描述

这对我的MVC 6项目不起作用.要么我不正确地压缩它,要么MVC 6项目不能以这种方式部署.

如何将vNext应用程序发布到远程IIS服务器?

编辑:

仅供参考,我使用Microsoft的Web Deploy Remote Agent将其部署到服务器. http://www.asp.net/web-forms/overview/deployment/configuring-server-environments-for-web-deployment/configuring-a-web-server-for-web-deploy-publishing-(remote-agent )

它适用于MVC 5应用程序,因为开发人员可以轻松部署Web应用程序,IT可以限制对计算机的访问,但问题是尝试使用此代理部署MVC 6应用程序.

我不是在质疑如何将MVC 6项目部署到IIS,因为已经回答了这里,这涉及到如何远程部署到IIS.

asp.net iis asp.net-core-mvc asp.net-core

4
推荐指数
1
解决办法
1491
查看次数