能否解释一下,internal
C#中关键字的实际用途是什么?
我知道internal
修饰符限制了对当前程序集的访问,但我什么时候需要呢?
对于我们的项目,我们使用Visual Studio Team Services来维护代码和构建.对于这个项目,我还想设置发布管理.(https://www.visualstudio.com/en-us/features/release-management-vs.aspx)
对于测试,登台和生产环境,我们有不同的Web.config文件,这些文件针对特定环境进行了转换.
我确实设置如下(MSBuild构建步骤):
问题是,为测试环境和Test Web.config创建了发布.将此构建移至Staging环境的一般方法是什么?我需要Staging Web.config.我应该总是建立3次并保留这些文物吗?这意味着很多构件的工件/磁盘空间大部分时间都不会被部署.
MSDN似乎没有给我一个答案.有任何想法吗?
我正在使用Bootstrap的网格系统为页面的一部分创建标题,如下所示:
<div class="row">
<div class="col-sm-10">
Heading Text
</div>
<div class="col-sm-2 text-right">
<a href="#"><span class="glyphicon glyphicon-pencil"></span></a>
<a href="#"><span class="glyphicon glyphicon-trash"></span></a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想要做的是在标题行下面添加一条规则 - 一条水平线,这样它看起来像这样(这使用不同的图标,但不要担心):
我可以的结束标记之前添加此代码完全实现这一目标div
与.row
类:
<div class="col-sm-12">
<div style='border-bottom:1px solid #ccc;'></div>
</div>
Run Code Online (Sandbox Code Playgroud)
然而,即使我将样式移动到样式表,这在所有地方添加也似乎很麻烦.我显然能够append
在jQuery中使用相同的效果(虽然这会导致它自己的问题),但我真正喜欢的是使用纯CSS实现这一点.
理想情况下,我想一个类添加到div
与.row
类和将在样式表CSS处理线的加入,但我不能弄明白.主要障碍是divs
该行的子行具有左右15px的填充,因此如果我将底部边框添加到父行div
,则该行延伸到两端的头部内容之外.
有没有办法可以用纯CSS完成我想要的东西?
我主张将Visual Studio Team Services用于我们的源代码控制解决方案,并且实际上已经开始这样做了.但是,我的经理在云托管存储和服务方面有点担心,他想知道在Team Services因任何原因无法访问时我们的应急计划是什么.
我已经指出,我们的源代码在我们的开发人员的计算机上,在他们的映射工作空间中,但不可否认的是,如果我们最终得到了这个并且无法访问Team Services,那么我们肯定会受到一些限制.他们可能都在处理同一解决方案的不同部分,我们无法将所有更改检查回中央存储库或合并在单独的分支中进行的更改.我们也无法访问与之前签到或我们的积压,测试等相关的评论.
所以,问题是,有没有办法备份我们在Team Services中托管的所有东西,以便在出现问题时,我们能够将所有这些恢复到本地托管的TFS安装中(或者别的地方)?
这个问题似乎或多或少与这个问题重复,但那个问题没有收到答案,而且已经有两年多了,所以我不知道协议是什么(我试图找出答案)。
不管怎样,我已经编写了一个 ASP.NET MVC5 Web 应用程序,并且在调试中一切正常。使用发布配置发布到服务器后,我开始看到错误“未捕获的引用错误:初始化之前无法访问'n'”。
经过几个小时的代码搜索后,我想我已经隔离了这个问题。我有这个小函数(它是一个 Knockout 视图模型,但这无关紧要):
eventIndexViewModel = function (params) {
let self = this;
// Map values from params object to properties of self
for (const [key, value] of Object.entries(params)) {
self['_' + key] = value;
}
self.eventsView = ko.observable(self._eventsView);
self.calendarToggleButtonClass = ko.pureComputed(function () {
return self.eventsView() === "calendar" ? "active" : "";
});
self.tableToggleButtonClass = ko.pureComputed(function () {
return self.eventsView() === "table" ? "active" : "";
});
};
Run Code Online (Sandbox Code Playgroud)
缩小并发布到服务器后,如果我在开发工具控制台中查看源代码,它看起来像这样:
eventIndexViewModel = …
Run Code Online (Sandbox Code Playgroud) 我对尝试实现 GitLab 的 CI/CD 管道完全陌生,但进展顺利。事实上,对于我的 ASP.NET 项目,如果我在msbuild
使用 Web Deploy 的命令中指定发布配置文件,它实际上会将代码成功部署到 Web 服务器。
但是,我现在想让“构建”作业创建工件,将其上传到 GitLab,然后我可以随后进行部署。我们正在使用 GitLab 的自托管实例,我不是该实例的管理员,但如果我知道我要什么,我可以与管理员交谈!
所以我gitlab-ci.yml
像这样配置了我的文件:
variables:
NUGET_PATH: 'C:\Program Files\Nuget\Nuget.exe'
NUGET_SOURCES: 'https://api.nuget.org/v3/index.json'
MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\msbuild.exe'
stages:
- build
build-job:
variables:
CI_DEBUG_TRACE: "true"
stage: build
script:
- '& "$env:NUGET_PATH" restore ApplicationTemplate.sln -Source "$env:NUGET_SOURCES"'
- '& "$env:MSBUILD_PATH" ApplicationTemplate\ApplicationTemplate.csproj /p:DeployOnBuild=true /p:Configuration=Release /p:PublishProfile=FolderPublish.pubxml'
artifacts:
paths:
- '.\ApplicationTemplate\bin\Release\Publish\'
Run Code Online (Sandbox Code Playgroud)
输出显示这可以很好地构建代码,并且似乎也成功找到了要上传的工件。但是,当它上传工件时,即使请求得到响应200 OK
,该过程也会失败。这是日志输出:
因此,它找到工件,尝试上传它们,甚至获得响应200 OK
(与我在网上找到的有关此错误的少数类似报告相反),但由于参数无效,它仍然失败。
我已经启用了详细调试,正如您从输出中看到的那样,但我一无所知。查看托管运行程序的盒子上的 Windows 事件日志中的 GitLab 运行程序条目也无法提供任何信息。工件的总大小为 61.1MB,所以我认为我的问题与此无关。
谁能从这个输出中看出什么是无效的?我可以确定哪个参数无效和/或为什么无效?
artifacts:expire_in …
关于 Android 主题和样式的问题和文章数以百万计——我已经阅读了其中的一半,但我仍然会发疯。
我想要的 - 并且来自具有可爱,友好的旧 CSS 样式表的 Web 应用程序开发背景,我认为这很容易 - 就是为我的应用程序创建一个主题,并在该主题中指定我的工具栏的颜色(我是为每个活动指定它们,我认为这是阅读官方文档后正确的做法)。
所以,在我的styles.xml
文件中,我有:
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:toolbarStyle">@style/MyToolbar</item>
</style>
<style name="MyToolbar" parent="Base.Widget.AppCompat.Toolbar">
<item name="android:textColor">#ffffff</item>
<item name="android:textColorPrimary">#ffffff</item>
<item name="android:elevation">4dp</item>
<item name="android:background">@color/colorPrimary</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在我看来,我在这里为我的工具栏创建了一个样式,然后在我的主题中引用了该样式。然后我将我的主题设置为应用程序主题AndroidManifest.xml
:
android:theme="@style/MyTheme"
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,这是有效的。我的主题中引用了其他样式,为了简单起见,我从代码中省略了这些样式,它们可以正常工作 - 我的按钮、文本视图等按照我创建的样式设置样式。
但讨厌的工具栏不是。我试过直接在工具栏 xml 中引用我的样式(即使我不明白为什么我需要在主题中指定它):
<android.support.v7.widget.Toolbar
android:id="@+id/main_activity_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/MyToolbar">
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
令人沮丧的是,这确实导致工具栏的背景颜色与我想要的一样,但文本仍然是黑色的,即使我试图将其设置为白色。
我是否误解了主题引用样式然后应用于活动或整个应用程序的方式?工具栏有什么独特之处吗?我花了更长的时间来尝试解决这个问题,而不是从头开始编写整个应用程序的其余部分,这是我的第一个 Android 应用程序!
更新: 好的,所以我已经确定,虽然我的工具栏的背景颜色需要在应用于工具栏的样式中设置,以防止该背景颜色传播到所有子视图,但需要在主题中指定所需的文本颜色因为工具栏中显示的文本是子视图(即使我在活动的 xml 中看不到它)。所以,这有效:
样式.xml:
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item …
Run Code Online (Sandbox Code Playgroud) 类似于这个问题但适用于Azure DevOps。回溯6到12个月,我能够在当时的VSTS中打开已部署的Release(或者可能是成功的Build,我的记忆模糊),然后查看与之关联的积压工作项。在该页面上,我还可以过滤发行版名称,以便该列表向我显示与同一发行版定义中比我过滤的版本新的与任何发行版关联的所有工作项。这就是我以前整理用户友好的发行说明的方式。它使我能够查看已修复的错误,已包含的功能,等等。据我所知,此功能在Azure DevOps中不再存在-至少,我找不到它。
我能得到的最接近的信息是在“变更集”枢纽中查看特定日期的变更集列表,但是它不像已完成的工作项列表那样全面,并且也不会告诉我这些变更集包含在哪个版本中。
我也可以运行查询以显示从某个特定日期完成的工作项,但是我仍然无法查看这些工作项与哪些版本相关联,即使我不能过滤出工作也无济于事基于创建发行版的存储库分支的项目。
有人知道Azure DevOps中现在是否可以查看与特定版本或内部版本关联的工作项吗?理想情况下,还应列出从特定日期开始根据指定的“构建或发布”定义创建的与任何“构建或发布”相关联的工作项目列表(例如,“显示自一月以来与“仅教育版本”构建定义一起创建的与构建相关联的所有工作项目”) 1st”)。
我一直在关注有关如何创建应用程序工具栏的官方文档。教程说,按照说明进行操作后,
“您的应用程序现在有一个基本的操作栏。默认情况下,操作栏仅包含应用程序的名称和溢出菜单。”
正如您从这张图片中看到的,我已经做了一些样式来获得我想要的颜色,并且我添加了一个菜单项,只是为了看看它是否正确显示。稍后我将研究如何修复图标的颜色。
我的问题是,正如您所看到的,应用程序标题没有垂直居中。距离顶部太近了。这让我很恼火,因为据我所知,它应该自动居中,而我不知道为什么我的不是,但我仍然尝试使用样式自己解决这个问题,但绝对没有成功。样式属性似乎对工具栏标题的填充没有任何影响。我可以向整个工具栏添加填充,但这也会影响菜单项,但我不希望它这样做。
我的实现如下所示:
活动_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true">
<android.support.v7.widget.Toolbar
android:id="@+id/main_activity_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/MyToolbarStyle"
app:theme="@style/MyToolbarTheme" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
样式.xml:
<resources>
<!-- Base application theme. -->
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="MyToolbarStyle" parent="Base.Widget.AppCompat.Toolbar">
<item name="android:elevation">4dp</item>
<item name="android:background">@color/colorPrimary</item>
</style>
<style name="MyToolbarTheme" parent="Base.Widget.AppCompat.Toolbar">
<item name="android:textColorPrimary">#ffffff</item>
</style>
Run Code Online (Sandbox Code Playgroud)
理想情况下,如果有人可以解释我哪里出了问题,使我的应用程序标题不垂直居中,那就太好了,但如果没有,有人可以告诉我如何在应用程序标题中添加边距或填充吗工具栏以便我可以尝试自己将其居中?
PS 这不是这个问题的重复- 该问题涉及更复杂的自定义工具栏。我的应该是默认实现。
更新: 根据要求,这是我的 MainActivity.java 文件的代码:
package com.example.samplescanner;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu; …
Run Code Online (Sandbox Code Playgroud) 我已经在一个页面上成功获得了两个div,每个div都有一个滚动条,并且使用jQuery,当一个div滚动时,另一个div相应地滚动.
$('#left').scroll(function () {
$('#right').scrollTop($(this).scrollTop());
});
$('#right').scroll(function () {
$('#left').scrollTop($(this).scrollTop());
});
Run Code Online (Sandbox Code Playgroud)
这工作得很好沿着你使用键盘或点击滚动条拖动做滚动的,但如果你使用鼠标滚轮这是令人难以置信的慢,因为,我认为,这样的事实,有一个"反馈回路".
有没有办法可以阻止这个循环,以便用鼠标滚轮滚动工作顺利?
这是一个显示问题的小提琴.
azure-devops ×3
android ×2
asp.net ×1
asp.net-mvc ×1
c# ×1
css ×1
gitlab-ci ×1
internals ×1
jquery ×1
tfs ×1